package thread;

class MyThread extends Thread{
    @Override
    public void run() {
        while(true){
            System.out.println("hello thread");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
public class TestDemo {

    public static void main(String[] args) throws InterruptedException {
        //创建一个进程
        //Java 中创建线程,就离不开 一个关键类 Thread
        //一种比较朴素的创建线程的方法,是写一个子类,继承Thread ,重写其中的run方法
        Thread thread = new MyThread();
        thread.run();

        while (true) {
            System.out.println("hello main");
            Thread.sleep(1000);
        }
        //先打印hello main 站在这个程序中先打印的hello main
        //但是在实际执行的时候，先看到的却是，先打印了hello main 后打印的 hello thread

        //1.每个线程是独立的执行流 卖弄对应的线程是一个执行流 Mythread 是另一个执行流
        //这两个执行之间是并发的执行关系！
        //此时两个线程执行的先后顺序,取决于操作系统调度器的具体实现->可以把在这里的调度规则,简单视为"随机调度"
        //顺序是不可确定的,但是看见的情况大概率是受到创建线程自身的开销
        //进程结束什么时候结束也不确定
    }
}
